package hotciv.standard;

import hotciv.framework.*;
import hotciv.variant.*;

/** 
 * Represents a city in the game.
 *
 *	Responsibilities:
 *	1) Know its owner.
 *	2) Know its population size.
 */

public class StandardCity implements CityTesting {
	
	private Player owner;
	private int size;
	private String production,balance;
	
	public StandardCity(Player owner, int size) {
		this.size = size;
		this.owner = owner;
	}

	/** return the owner of this city.
	 * @return the player that controls this city.
	 */
	public Player getOwner() {
		return this.owner;
	}
	
	public void setOwner(Player p) {
		this.owner = p;
	}

	/** return the size of the population.
	 * @return population size.
	 */
	public int getSize() {
		return this.size;
	}

	/** return the type of unit this city is currently producing.
	 * @return a string type defining the unit under production,
	 * see GameConstants for valid values.
	 */
	public String getProduction() {
		return this.production;
	}
	
	/** return the type of unit this city is currently producing.
	 * @return a string type defining the unit under production,
	 * see GameConstants for valid values.
	 */
	public void setProduction(String s) {
		this.production = s;
	}

	/** return the work force's focus in this city.
	 * @return a string type defining the focus, see GameConstants
	 * for valid return values.
	 */
	public String getWorkforceFocus() {
		return this.balance;
	}
	
	/** return the work force's focus in this city.
	 * @return a string type defining the focus, see GameConstants
	 * for valid return values.
	 */
	public void setWorkforceFocus(String s) {
		this.balance = s;
	}

}
